package com.zimmur.service;

import java.util.List;
import java.util.Map;

import com.zimmur.model.desiger.view.DesigerVo;
import com.zimmur.model.goods.Goods;
import com.zimmur.model.goods.GoodsCollect;
import com.zimmur.model.goods.GoodsParameter;
import com.zimmur.model.goods.GoodsType;
import com.zimmur.solr.model.Designer;
import com.zimmur.tools.PageUtil;
/**
 * 衣匠服务接口
 * @author Administrator
 *
 */
public interface IMakerService {
	/**
	 * 根据类型显示所有类别
	 * @param typeFlag 类别：1=衣匠/2=家定
	 * @return
	 */
	List<GoodsType> allGoodsType(GoodsParameter goodsParameter);//(Short typeFlag);
	/**
	 * 商品查询
	 * @param parameterQuery
	 * @return
	 */
	PageUtil<Goods> goodsQuery(long userId,GoodsParameter goodsParameter,Integer pageNo);
	/**
	 * 通过solr查询商品
	 * @param userId
	 * @param goodsParameter
	 * @param pageNo
	 * @return
	 */
	PageUtil<com.zimmur.solr.model.Goods> goodsQueryBySolr(long userId,GoodsParameter goodsParameter,Integer pageNo);
	/**
	 * 商品类别
	 * @param goodsType
	 * @return
	 */
	List<Goods> goodsTypeSelect(Integer typeId);
	/**
	 * 衣匠首页
	 * @param createUser 
	 * @param pageNow
	 * @return
	 */
	Map<String, Object> MakerIndex(Long createUser,Integer pageNow);
	/**
	 * 衣匠  分页 查询 
	 * @param key
	 * @param createUser
	 * @param pageNow
	 * @param pageSize
	 * @return
	 */
	PageUtil<DesigerVo> MakerPageByKeyAndTags(String key,String tags,Long createUser,Integer pageNow);
	/**
	 * 衣匠  分页  通过solr查询
	 * @param key
	 * @param tags
	 * @param createUser
	 * @param pageNow
	 * @return
	 */
	PageUtil<Designer> MakerQueryWithKeyAndTagsBySolr(String key,String tags,Long createUser,Integer pageNow);
	/**
	 * 设计师首页
	 * @param 
	 * @return
	 */
	List<Goods> desiGnerIndex(long userId,Integer pageNo);
	/**
	 * 所有作品分页
	 * @param 
	 * @return
	 */
	PageUtil<Goods> desigerGoodsPage(String key,long userId,Integer pageNow);
	/**
	 * 新品上架
	 * @param 
	 * @return
	 */
	PageUtil<Goods> thesHelves(long userId,Integer pageNow);
	/**
	 * 上架 分页
	 * @param 
	 * @return
	 */
	PageUtil<Goods> shelvesPage(String key,long userId,Integer pageNow);
	/**
	 * 社群推荐商品
	 * @return
	 */
	PageUtil<Goods> commUnityGoods(Long userId,String key,Integer pageNow);
    /**
     * 分享，修改转发数
     * @return
     */
    int updateGoodsShareNum(String shareNum,long goodsId);
    /**
     * 商品收藏
     * @param goodsCollect
     * @return
     */
    int collectGoods(GoodsCollect goodsCollect);
    /**
     * 我的商品收藏
     * @param goodsCollect
     * @return
     */
    PageUtil<Goods> myCollectGoods(long userId,Integer pageNow);
    /**
     * 商品明细
     * @param isGussUser 
     * @return
     */
    Goods goodsDetails(long goodsId,long userId, Boolean isGussUser); 
}
